/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPCell;

import java.io.FileOutputStream;
import java.io.FileNotFoundException;

import com.itextpdf.text.Font;
import com.itextpdf.text.Rectangle;

import java.util.List;
import java.util.ArrayList;

/**
 *
 * @author charles
 */
public class ComprobanteAspirantes extends Reporte {

    List aspirantes;
    Institucion institucion;
    int CedulaCoordinador;
    Coordinador Coordinador;
    private int institucionId;
    String path;

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public ComprobanteAspirantes() {
    }

    public List getAspirantes() {
        return aspirantes;
    }

    public void setAspirantes(List aspirantes) {
        this.aspirantes = aspirantes;
    }

    public Institucion getInstitucion() {
        return institucion;
    }

    public void setInstitucion(Institucion institucion) {
        this.institucion = institucion;
    }

    public int getCedulaCoordinador() {
        return CedulaCoordinador;
    }

    public void setCedulaCoordinador(int CedulaCoordinador) {
        this.CedulaCoordinador = CedulaCoordinador;
    }

    public clases.Coordinador getCoordinador() {
        return Coordinador;
    }

    public void setCoordinador(clases.Coordinador Coordinador) {
        this.Coordinador = Coordinador;
    }

    public int getInstitucionId() {
        return institucionId;
    }

    public void setInstitucionId(int institucionId) {
        this.institucionId = institucionId;
    }

    public ComprobanteAspirantes(ArrayList aspirantes, Institucion institucion, int CedulaCoordinador) {
        this.aspirantes = aspirantes;
        this.institucion = institucion;
        this.CedulaCoordinador = CedulaCoordinador;
    }

    public void generar(String path) throws FileNotFoundException {
        FileOutputStream f = new FileOutputStream(path);
        Document document = new Document();

        try {
            PdfWriter writer = PdfWriter.getInstance(document, f);


            Rectangle rct = new Rectangle(36, 54, 559, 788);
            //Definimos un nombre y un tamaño para el PageBox los nombres posibles son: “crop”, “trim”, “art” and “bleed”.
            writer.setBoxSize("art", rct);
            HeaderFooter event = new HeaderFooter(this.getId(), this.getNumAutenticacion());
            writer.setPageEvent(event);
            document.open();
            //Encabezado
            Font fuente = new Font(Font.getFamily("ARIAL"), 16, Font.BOLD);
            String encabezado = "\n Reporte de PIO Nro. " + this.getId() + "\n"
                    + "\nColegio " + this.getInstitucion().getNombre() + "\n"
                    + "Coordinador " + this.getCoordinador().getNombres() + " " + this.getCoordinador().getApellidos() + "\n"
                    + "Cedula Nro. " + this.getCedulaCoordinador() + "\n";
            Paragraph pa = new Paragraph(encabezado, fuente);
            pa.setSpacingBefore(20);
            pa.setSpacingAfter(10);
            pa.setIndentationLeft(50);
            document.add(pa);

            // Alumnos de la institucion
            String s = "Alumnos pertenecientes a la institucion:";
            Paragraph p = new Paragraph(s);
            p.setSpacingBefore(20);
            p.setSpacingAfter(10);
            p.setIndentationLeft(50);
            document.add(p);
            PdfPTable table = new PdfPTable(5);
//            table.setWidthPercentage(100);
            s = "Numero";
            PdfPCell cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
            s = "Cedula";
            cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
            s = "Nombres";
            cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
            s = "Apellidos";
            cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
            s = "Promedio";
            cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
            if (aspirantes != null) {
                for (int i = 0; i < aspirantes.size(); i++) {
                    Aspirante c = (Aspirante) aspirantes.get(i);
                    cell1 = new PdfPCell(new Paragraph(String.valueOf(i)));
                    PdfPCell cell5 = new PdfPCell(new Paragraph(c.getCedula()));
                    PdfPCell cell2 = new PdfPCell(new Paragraph(c.getNombres()));
                    PdfPCell cell3 = new PdfPCell(new Paragraph(c.getApellidos()));
                    PdfPCell cell4 = new PdfPCell(new Paragraph(String.valueOf(c.getPromedio())));
                    table.addCell(cell1);
                    table.addCell(cell5);
                    table.addCell(cell2);
                    table.addCell(cell3);
                    table.addCell(cell4);
                }
            }
            document.add(table);
            document.close();
            f.flush();
            f.close();
        } catch (Exception e) {
            //imprimimos los errores
            System.err.println(e);
            e.printStackTrace();
        }
    }
}
